package com.dc.commons.config.web.context;

import javax.servlet.ServletContextEvent;

import org.springframework.web.context.ContextLoaderListener;
import org.springframework.web.context.WebApplicationContext;

/*******************************************************************************<P>
 * 文件名: DcContextLoaderListener.java <br>
 * 版本: 1.0<br>
 * 描述:扩展 ContextLoaderListener 可以在初始化前后追加一些内容<br>
 * 版权所有: <br>
 * <P>
 * 创建者: 王建栋 <br>
 * 创建日期: 2015年12月17日 上午10:00:50<br>
 * 修改者: <br>
 * 修改日期: <br>
 * 修改说明: <br>
 *****************************************************************************
 */
public class DcContextLoaderListener extends ContextLoaderListener{

	private ContextLoaderListenerWrapper contextLoaderListenerWrapper;
	
	public DcContextLoaderListener(WebApplicationContext context){
		super(context);
	}
	public DcContextLoaderListener(WebApplicationContext context,ContextLoaderListenerWrapper contextLoaderListenerWrapper){
		this(context);
		this.contextLoaderListenerWrapper=contextLoaderListenerWrapper;
	}
	@Override
	public void contextInitialized(ServletContextEvent event) {
		if(contextLoaderListenerWrapper!=null){
			contextLoaderListenerWrapper.beforContextInitialized(this, event);
			super.contextInitialized(event);
			contextLoaderListenerWrapper.afterContextInitialized(this, event);
		}else{
			super.contextInitialized(event);
		}
	}
	
	@Override
	public void contextDestroyed(ServletContextEvent event) {
		if(contextLoaderListenerWrapper!=null){
			contextLoaderListenerWrapper.beforContextInitialized(this, event);
				super.contextDestroyed(event);
				contextLoaderListenerWrapper.afterContextInitialized(this, event);
		}else{
			super.contextDestroyed(event);
		}
	}

}
